package Utils;

import java.util.List;

import Bean.AchievementBean;
import Bean.AchievementParamBean;
import Bean.AchievementParamBean1;
import Bean.AddBankCardBean;
import Bean.AddBankCardParamBean;
import Bean.AddMPOSBean;
import Bean.AddMPOSParamBean;
import Bean.AddOrderBean;
import Bean.AddOrderParamBean;
import Bean.AddaddressBean;
import Bean.AddaddressParamBean;
import Bean.AddressBean;
import Bean.AddressParamBean;
import Bean.AliPayBean;
import Bean.AliPayParamBean;
import Bean.AllyBean;
import Bean.AllyParamBean;
import Bean.AreaBean;
import Bean.AuthBean;
import Bean.AuthParamBean;
import Bean.AuthenticationBean;
import Bean.AuthenticationParamBean;
import Bean.CancelBank;
import Bean.CancelOrder;
import Bean.CancelParamOrder;
import Bean.ChangePasswordBean;
import Bean.ChangePasswordParamBean;
import Bean.ComplaintBean;
import Bean.ComplaintParamBean;
import Bean.EditAddressParamBean;
import Bean.EnterpriseassBean;
import Bean.EnterpriseassParamBean;
import Bean.FindAddressBean;
import Bean.ForwardBean;
import Bean.ForwardParamBean;
import Bean.GetBankcardBean;
import Bean.GetBankcardParamBean;
import Bean.GetMainActivityDataBean;
import Bean.GetMainActivityDataParamBean;
import Bean.HistoricalincomeBean;
import Bean.KnowledgeBean;
import Bean.KnowledgeParamBean;
import Bean.LearnMore;
import Bean.LoginBean;
import Bean.LoginParamBean;
import Bean.MPOSBean;
import Bean.MPOSParamBean;
import Bean.MessagecenterBean;
import Bean.MessagecenterParamBean;
import Bean.ModifyPasswordBean;
import Bean.ModifyPasswordParamBean;
import Bean.MyearningsBean;
import Bean.MyearningsParamBean;
import Bean.OrderBean;
import Bean.OrderDetailsBean;
import Bean.OrderDetailsParamBean;
import Bean.OrderParamBean;
import Bean.POSSelectBean;
import Bean.POSSelectBean2;
import Bean.POSSelectParamBean;
import Bean.PhoneNumerBean;
import Bean.PhoneNumerParamBean;
import Bean.PresentRecordBean;
import Bean.PresentRecordParamBean;
import Bean.ProductBean;
import Bean.ProductParamBean;
import Bean.RegisterBean;
import Bean.RegisterParamBean;
import Bean.ResultBean;
import Bean.ReturnofincomeBean;
import Bean.SendPhoneCodeBean;
import Bean.SendPhoneCodeParamBean;
import Bean.SetDefaultAddressBean;
import Bean.SetDefaultAddressParamBean;
import Bean.ShareBean;
import Bean.ShareParamBean;
import Bean.UpdateVersion;
import Bean.Updateapp;
import dao.AddPosInput;
import dao.AllyRewardOutput;
import dao.BackAmountOutput;
import dao.BaseOutput;
import dao.ChangeBalanceCardInput;
import dao.CustomIdInput;
import dao.FlowDevicesInput;
import dao.GetUrlOutput;
import dao.HomeDataInput;
import dao.HomeDataOutput;
import dao.HomePageOutput;
import dao.MerchantTradeInput;
import dao.MerchantTradeOutput;
import dao.SubmitWorkOrderOutput;
import dao.TradeRecordOutput;
import dao.WorkOrderDetailInput;
import dao.WorkOrderDetailOutput;
import dao.WorkOrderHandleInput;
import dao.WorkOrderListOutput;
import model.PersonalCenterBean;
import model.PersonalCenterParamBean;
import model.PersonalIconBean;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import retrofit2.http.Url;

/**
 * Created by Administrator on 2018/4/14.
 */

public interface CoordinateService {

//    @GET
//    Call<Helloword> getHelloResult(@Url String url, @Query("hello") String hello);
//

    @POST
    Call<OrderBean> getOrder(@Url String url, @Body OrderParamBean o);

    @POST
    Call<LoginBean> login(@Url String url, @Body LoginParamBean l);

    @POST
    Call<CancelParamOrder> cancelOrder(@Url String url, @Body CancelOrder c);
    @POST
    Call<CancelParamOrder> cancelBank(@Url String url, @Body CancelBank c);
    @POST
    Call<CancelParamOrder> confimOrder(@Url String url, @Body CancelOrder c1);

    @POST
    Call<OrderDetailsBean> getOrderDetails(@Url String url, @Body OrderDetailsParamBean o1);

    @POST
    Call<SendPhoneCodeBean> getPhoneCode_register(@Url String url, @Body SendPhoneCodeParamBean s);

    @POST
    Call<OrderDetailsBean> getPhoneCode_forget(@Url String url, @Body OrderDetailsParamBean o3);

    @POST
    Call<RegisterBean> register(@Url String url, @Body RegisterParamBean r);

    @POST
    Call<ModifyPasswordBean> modifypassword(@Url String url, @Body ModifyPasswordParamBean m);

    @POST
    Call<MPOSBean> getPickupMachine(@Url String url, @Body MPOSParamBean orderDetailsBean);

    @POST
    Call<ProductBean> getProduct(@Url String url, @Body ProductParamBean o4);

    @POST
    Call<AddressBean> getCity(@Url String url);

    @POST
    Call<AddaddressBean> addAddress(@Url String url, @Body AddaddressParamBean a);

    @POST
    Call<AddaddressBean> eidtAddress(@Url String url, @Body EditAddressParamBean a);

    @POST
    Call<MyearningsBean> getmyearnings(@Url String url, @Body MyearningsParamBean m);

    @POST
    Call<HistoricalincomeBean> gethistoricalincome(@Url String url, @Body MyearningsParamBean m2);

    @POST
    Call<FindAddressBean> getdefaultAddress(@Url String url, @Body MyearningsParamBean m3);

    @POST
    Call<ResultBean> deleteaddress(@Url String url, @Body AddressParamBean a2);

    @POST
    Call<SetDefaultAddressBean> setDefaultAddress(@Url String url, @Body SetDefaultAddressParamBean s);

    @POST
    Call<AllyBean> getAlly(@Url String url, @Body AllyParamBean a3);

    @POST
    Call<ComplaintBean> complaint(@Url String url, @Body ComplaintParamBean c);

    @POST
    Call<PersonalCenterBean> personal(@Url String url, @Body PersonalCenterParamBean p);

    @POST
    Call<ChangePasswordBean> changepass(@Url String url, @Body ChangePasswordParamBean c);

    @POST
    Call<MessagecenterBean> getMessageCenter(@Url String url, @Body MessagecenterParamBean m5);

    @GET
    Call<POSSelectBean> getPOS1(@Url String url, @Query("customId") int customId, @Query("type") String type);

    @POST
    Call<POSSelectBean2> getPOS2(@Url String url, @Body POSSelectParamBean pos2);

    @POST
    Call<PhoneNumerBean> getphonecode(@Url String url, @Body PhoneNumerParamBean pn);

    @POST
    Call<AddMPOSBean> addMPOS(@Url String url, @Body AddMPOSParamBean amp);

    @POST
    Call<AddOrderBean> addOredr(@Url String url, @Body AddOrderParamBean ao);

    @POST
    Call<AliPayBean> AliPay(@Url String url, @Body AliPayParamBean al);

    @POST
    Call<AchievementBean> getAchievement(@Url String url, @Body AchievementParamBean ap);

    @POST
    Call<AchievementBean> getAchievement1(@Url String url, @Body AchievementParamBean1 ap);

    @POST
    Call<KnowledgeBean> getKnowledge(@Url String url, @Body KnowledgeParamBean kp);

    @POST
    Call<AreaBean> getArea(@Url String url, @Body KnowledgeParamBean kp);

    @POST
    Call<ShareBean> getShare(@Url String url, @Body ShareParamBean sp);

    @POST
    Call<GetBankcardBean> getBankCard(@Url String url, @Body GetBankcardParamBean gp);

    @POST
    Call<ReturnofincomeBean> getReturnofincome(@Url String url, @Body GetBankcardParamBean gp2);

    @POST
    Call<ForwardBean> getForward(@Url String url, @Body ForwardParamBean fp);

    @POST
    Call<PresentRecordBean> getPresentRecord(@Url String url, @Body PresentRecordParamBean pr);

    @POST
    Call<AuthenticationBean> getAuthentication(@Url String url, @Body AuthenticationParamBean ap);

    @POST
    Call<AddBankCardBean> addBankcard(@Url String url, @Body AddBankCardParamBean acp);

    @POST
    Call<EnterpriseassBean> GetEnterprise(@Url String url, @Body EnterpriseassParamBean ep);

    @POST
    Call<Updateapp> updateapp(@Url String url, @Body UpdateVersion version);

    @POST
    Call<GetMainActivityDataBean> getMainActivityData(@Url String url, @Body GetMainActivityDataParamBean gmad);

    @POST
    Call<AuthBean> auth(@Url String url, @Body AuthParamBean param);

    @POST("merchant/addPOS1")
    Call<BaseOutput<Object>> addTraditionalPos(@Body AddPosInput param);

    @GET("problems/v2")
    Call<LearnMore> getLearnMore();

    @POST("bannerinfo/homePage")
    Call<BaseOutput<HomePageOutput>> getHomePage(@Body HomeDataInput param);

    @POST("bannerinfo/listNew")
    Call<BaseOutput<HomeDataOutput>> getHomeData(@Body HomeDataInput param);

    @POST("tradeDetail/merchantList")
    Call<BaseOutput<TradeRecordOutput>> getTradeRecord(@Body CustomIdInput input);

    @POST("tradeDetail/tradeDetailList")
    Call<BaseOutput<MerchantTradeOutput>> getMerchantTrade(@Body MerchantTradeInput input);

    @POST("merchant/getRuleURL")
    Call<BaseOutput<GetUrlOutput>> getFlowRule();

    @POST("pos/flow")
    Call<BaseOutput<Object>> flowDevices(@Body FlowDevicesInput input);

    @POST("workOrder/workOrderList")
    Call<BaseOutput<WorkOrderListOutput>> getWorkOrderList(@Body CustomIdInput input);

    @POST("workOrder/workOrderProcessed")
    Call<BaseOutput<WorkOrderListOutput>> getWorkOrderListDone(@Body CustomIdInput input);

    @POST("workOrder/workOrderDetails")
    Call<BaseOutput<WorkOrderDetailOutput>> getWorkOrderDetail(@Body WorkOrderDetailInput input);

    @POST("workOrder/workOrderSubmit")
    Call<SubmitWorkOrderOutput> handleWorkOrder(@Body WorkOrderHandleInput input);

    @POST("workOrder/getConsumptionURL")
    Call<BaseOutput<GetUrlOutput>> getPayProveTemplate();

    @POST("merchant/updatePOS")
    Call<BaseOutput<Object>> changeBalanceCard(@Body ChangeBalanceCardInput input);

    @POST("tradeDetail/dividedDetailList")
    Call<BaseOutput<AllyRewardOutput>> getAllyRewardList(@Body CustomIdInput input);

    @POST("merchant/backAmount")
    Call<BaseOutput<BackAmountOutput>> getBackAmount(@Body List<String> strings);

    @POST
    Call<PersonalCenterBean> getPersonIcon(@Url String url, @Body PersonalIconBean gp);

}